package br.com.infnet.formularioeletronico.util;

import br.com.infnet.formularioeletronico.modelo.Aluno;
import br.com.infnet.formularioeletronico.modelo.Avaliacao;
import java.util.List;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;

public class Email {

    public void enviarEmail(Avaliacao avaliacao) {

        try {

            SimpleEmail email = new SimpleEmail();
            // SERVIDOR SMTP UTILIZADO PARA ENVIO - GMAIL
            email.setHostName("smtp.gmail.com");
            // REMETENTE
            email.setFrom("formulario.eletronico@gmail.com", "Formulario");
            // ASSUNTO 
            email.setSubject(avaliacao.getAssunto());
            //CORPO DO EMAIL 
            email.setMsg(avaliacao.getMensagem());
            //AUTENTICAÇÃO
            email.setAuthentication("formulario.eletronico@gmail.com", "formul@rio");
            //PORTA E DEMAIS CONFIGURAÇÕES
            email.setSmtpPort(465);
            email.setSSL(true);
            email.setTLS(true);

            //OBTEM A LISTA DE ALUNOS DA TURMA VINCULADA A AVALIAÇÃO PARA ENVIO DA
            //NOTIFICAÇÃO SOBRE A AVALIAÇÃO PENDENTE DE SER RESPONDIDA.
            List<Aluno> alunos = avaliacao.getTurma().getAlunos();
           
            if (alunos != null) {

                for (Aluno aluno : alunos) {
                    //DESTINATÁRIO 
                    email.addTo(aluno.getEmail(), aluno.getUsuario().getNome());
                    //ENVIO
                    email.send();
                }
            }
        } catch (EmailException e) {
            e.printStackTrace();
        }
    }
}
